package com.shujia.spark.sql

import org.apache.spark.sql.{DataFrame, SparkSession}

object Demo6SparkOnHIve {
  def main(args: Array[String]): Unit = {
    val spark: SparkSession = SparkSession
      .builder()
      //.master("local")
      .appName("hive")
      .enableHiveSupport() //开启hive开启hive元数据支持，开启之后可以在代码中获取hive的表
      .config("spark.sql.shuffle.partitions", 1)
      .getOrCreate()

    import spark.implicits._
    import org.apache.spark.sql.functions._

    /**
     * 读取hive中的表得到一个DataFrame
     */
    //获取hive中的表
    val studentDF: DataFrame = spark.table("student")

    studentDF
      .groupBy($"clazz")
      .agg(count($"clazz") as "num")
      .show()


    /**
     * 直接写sl，查询hive中的表
     */

    val sexNumDF: DataFrame = spark.sql(
      """
        |select gender ,count(1) from
        |student
        |group by gender
        |""".stripMargin)

    sexNumDF.show()
  }

}
